#pragma once
#include <Rz/IObject.h>
#include <Rz/Graphics/Render/IArrayBuffer.h>
#include "VertexDescription.h"

namespace Rz { namespace Graphics { namespace Render {

class IVertexBuffer :
	virtual public IObject,
	virtual public IArrayBuffer
{
	public:
		RZ_RTTI_INTERFACE(Rz::Graphics::Render, IVertexBuffer);
		RZ_RTTI_IMPLEMENTS(IObject, IArrayBuffer);
		RZ_RTTI_END;

		const VertexDescription* GetVertexDescription() const { return _vertexDescription; }
		VertexDescription* GetVertexDescription() { return _vertexDescription; }
		void SetVertexDescription(VertexDescription* vertexDescription) { _vertexDescription = vertexDescription; }

	private:
		Ptr<VertexDescription> _vertexDescription;
};

} } }
